🔍 Lecteur RFID/NFC DIY avec Arduino
Ce projet vous permettra de construire un lecteur RFID/NFC capable de lire des cartes et des tags NFC. Il affichera l’UID des tags détectés sur un moniteur série.
🛠️ Matériel Nécessaire
- Microcontrôleur : Arduino Uno / ESP32
- Module RFID/NFC : PN532
- Écran OLED (optionnel) : 128x64 pour afficher l’UID
- Buzzer / LED : Indication de lecture
- Câbles Dupont (male-male, male-femelle)
- Alimentation : 5V USB (Arduino) ou 3.3V (ESP32)
- Plaque d’essai (breadboard)
📡 Schéma de Montage
+------------+ +-------------+
| Arduino | | Module |
| Uno/ESP | | PN532 |
+------------+ +-------------+
| |
| SDA --------> SDA
| SCL --------> SCL
| GND --------> GND
| 5V --------> VCC
|
| LED (optionnel) Buzzer (optionnel)
| | |
GND 330Ω GND
| |
LED Buzzer
🔹 Le module PN532 est connecté en **I2C** (SDA/SCL) pour la communication avec l’Arduino.
📌 Étapes de Construction
1️⃣ Connexion du Module RFID/NFC
- Branchez VCC du PN532 à **5V** (ou 3.3V pour ESP32).
- Branchez GND du PN532 à **GND** de l’Arduino.
- Reliez SDA du PN532 à **SDA** de l’Arduino (**A4 sur Uno, GPIO21 sur ESP32**).
- Reliez SCL du PN532 à **SCL** de l’Arduino (**A5 sur Uno, GPIO22 sur ESP32**).
2️⃣ Ajout des Indicateurs (LED/Buzzer)
- Connectez une **LED** avec une résistance de **330Ω** sur **D2**.
- Connectez un **buzzer** actif sur **D3** (optionnel).
💻 Code Arduino
Voici le code pour détecter un tag NFC et afficher son UID dans le moniteur série :
#include <Wire.h>
#include <Adafruit_PN532.h>
#define SDA_PIN 21 // GPIO21 (ESP32) / A4 (Arduino Uno)
#define SCL_PIN 22 // GPIO22 (ESP32) / A5 (Arduino Uno)
Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);
void setup() {
Serial.begin(115200);
Serial.println("Initialisation du lecteur NFC...");
nfc.begin();
if (!nfc.getFirmwareVersion()) {
Serial.println("Erreur : PN532 non détecté !");
while (1);
}
Serial.println("Lecteur NFC détecté !");
nfc.SAMConfig();
}
void loop() {
Serial.println("Scan en cours...");
uint8_t uid[7];
uint8_t uidLength;
if (nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength)) {
Serial.print("Tag détecté ! UID : ");
for (uint8_t i = 0; i < uidLength; i++) {
Serial.print(uid[i], HEX);
Serial.print(" ");
}
Serial.println();
delay(1000);
}
}
🔍 Explication du Code
- 🔹 **Initialisation du module PN532** via I2C.
- 🔹 **Scan continu** des cartes NFC.
- 🔹 **Affichage de l’UID** d’un tag sur le moniteur série.
- 🔹 **Détection en temps réel** avec une pause de 1 seconde.
🚀 Améliorations Possibles
- 📡 **Ajouter une connexion WiFi (ESP32)** pour envoyer les UID à une base de données.
- 🔐 **Authentification NFC** pour sécuriser une porte ou un accès.
- 📺 **Affichage sur un écran OLED** des UID détectés.
- 💾 **Sauvegarde des logs sur carte SD**.